home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue30 / bdeorx / BDEDORX.ZIP / BDEDoRx / bdedorx7.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1997-12-26  |  3.5 KB  |  138 lines

  1. unit BDEDoRx7;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, DB, DBTables;
  8.  
  9. type
  10.   TValFrm = class(TForm)
  11.     ListBox1: TListBox;
  12.     AddBtn: TButton;
  13.     DropBtn: TButton;
  14.     CancelBtn: TButton;
  15.     GroupBox1: TGroupBox;
  16.     Edit1: TEdit;
  17.     Edit2: TEdit;
  18.     Edit3: TEdit;
  19.     Label1: TLabel;
  20.     Label2: TLabel;
  21.     Label3: TLabel;
  22.     Edit4: TEdit;
  23.     Label4: TLabel;
  24.     Label5: TLabel;
  25.     CheckBox1: TCheckBox;
  26.     procedure FormCreate(Sender: TObject);
  27.     procedure ListBox1Click(Sender: TObject);
  28.     procedure AddBtnClick(Sender: TObject);
  29.     procedure DropBtnClick(Sender: TObject);
  30.     procedure SetButtonStatus(Sender: TObject);
  31.   private
  32.     procedure InitFields(ADataSet: TDBDataSet);
  33.     procedure SetCenterPos;
  34.   public
  35.   end;
  36.  
  37. var
  38.   ValFrm: TValFrm;
  39.  
  40. implementation
  41.  
  42. {$R *.DFM}
  43.  
  44. uses BDEDoRx1, BDEDoRxS;
  45.  
  46. procedure TValFrm.InitFields(ADataSet: TDBDataSet);
  47. var i: integer;
  48. begin
  49.   for i:=0 to pred(ADataSet.FieldCount) do
  50.     with ADataSet.Fields[i] do
  51.       ListBox1.Items.Add(FieldName);
  52. end;
  53.  
  54. procedure TValFrm.FormCreate(Sender: TObject);
  55. begin
  56.   CalcControlSize(self);
  57.   InitFields(MainFrm.Table1);
  58.   SetButtonStatus(Sender);
  59. end;
  60.  
  61. {center on the application's active form before showing this form:}
  62. procedure TValFrm.SetCenterPos;
  63. var CFTop, CFLeft: integer;
  64. begin
  65.   with Screen.ActiveForm do
  66.   begin
  67.     CFTop := (Height div 2) - ((self).Height div 2) + Top;
  68.     CFLeft := (Width div 2) - ((self).Width div 2) + Left;
  69.     (self).SetBounds(CFLeft, CFTop, (self).Width, (self).Height);
  70.   end;
  71. end;
  72.  
  73. procedure TValFrm.SetButtonStatus(Sender: TObject);
  74. begin
  75.   AddBtn.Enabled := (ListBox1.ItemIndex > -1)
  76.                     and ((Edit1.Text > '') or (Edit2.Text > '')
  77.                      or (Edit3.Text > '') or (Edit4.Text > '')
  78.                      or CheckBox1.Checked);
  79.   DropBtn.Enabled := AddBtn.Enabled;
  80. end;
  81.  
  82. procedure TValFrm.ListBox1Click(Sender: TObject);
  83. var ValList: TStringList;
  84.     FieldNo: integer;
  85. begin
  86.   with ListBox1 do
  87.     FieldNo := MainFrm.Table1.FindField(Items[ItemIndex]).FieldNo;
  88.   ValList := TStringList.Create;
  89.   try
  90.     BDEGetValchecksForField(MainFrm.Table1,FieldNo,ValList);
  91.     CheckBox1.Checked := (ValList.Values['Required'] = '1');
  92.     Edit1.Text := ValList.Values['MinVal'];
  93.     Edit2.Text := ValList.Values['MaxVal'];
  94.     Edit3.Text := ValList.Values['DefVal'];
  95.     Edit4.Text := ValList.Values['Picture'];
  96.   finally
  97.     ValList.Free;
  98.   end;
  99. end;
  100.  
  101. procedure TValFrm.AddBtnClick(Sender: TObject);
  102. const CBoolVerb: array[boolean] of shortstring = ('FALSE','TRUE');
  103. var ValList: TStringList;
  104.     FieldNo: integer;
  105. begin
  106.   ValList := TStringList.Create;
  107.   try
  108.     with ListBox1, ValList do
  109.     begin
  110.       FieldNo := MainFrm.Table1.FindField(Items[ItemIndex]).FieldNo;
  111.       Add('FieldNo='+IntToStr(FieldNo));
  112.       Add('Required='+CBoolVerb[CheckBox1.Checked]);
  113.       Add('MinVal='+Edit1.Text);
  114.       Add('MaxVal='+Edit2.Text);
  115.       Add('DefVal='+Edit3.Text);
  116.       Add('Picture='+Edit4.Text);
  117.       BDEAddValchecksForField(MainFrm.Table1,FieldNo,ValList);
  118.     end;
  119.   finally
  120.     ValList.Free;
  121.     ListBox1Click(Sender);
  122.   end;
  123. end;
  124.  
  125. procedure TValFrm.DropBtnClick(Sender: TObject);
  126. var FieldNo: integer;
  127. begin
  128.   with ListBox1 do
  129.     FieldNo := MainFrm.Table1.FindField(Items[ItemIndex]).FieldNo;
  130.   try
  131.     BDEDropValChecksForField(MainFrm.Table1,FieldNo);
  132.   finally
  133.     ListBox1Click(Sender);
  134.   end;
  135. end;
  136.  
  137. end.
  138.